#pragma once

//////////////////////////////////////////////////////////////////////////
//
//   Holds a D3D buffer and its mirroring data that can be modified
//   and used to update the buffer.
// 
//   The only purpose of this structure is to keep together
//   D3D11 buffer and its data.
//
//////////////////////////////////////////////////////////////////////////

struct ID3D11Buffer;

template<typename T>
struct BufferData {
    // Structure instance mirroring the 
    // data stored in the constant buffer.
    T mData;

    ID3D11Buffer* mBuffer;

    BufferData()
        : mBuffer(nullptr)
    {

    }
};

